package com.spring.demo5.factory;

import org.omg.CORBA.Environment;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.io.ResourceLoader;
import org.springframework.lang.Nullable;

/**
 * ConditionContext提供一些方法，用来获取spring容器中的各种信息
 *
 * @author vhans
 */
public interface MyConditionContext {

    /**
     * 返回bean定义注册器，通过注册器获取bean定义的各种信息
     */
    BeanDefinitionRegistry getRegistry();

    /**
     * 返回一个ConfigurableListableBeanFactory类型的bean工厂，相当于一个IOC容器
     */
    @Nullable
    ConfigurableListableBeanFactory getBeanFactory();

    /**
     * 返回当前spring容器的环境配置信息对象
     */
    Environment getEnvironment();

    /**
     * 返回资源加载器
     */
    ResourceLoader getResourceLoader();

    /**
     * 返回类加载器
     */
    @Nullable
    ClassLoader getClassLoader();
}
